package com.plian.system.service.hr.dept;

import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.plian.system.entity.hr.dept.Dept;
import com.plian.system.excel.ImportResult;
import com.plian.system.mybatis.base.BaseService;
import com.plian.system.vo.hr.dept.DeptVO;

import java.io.File;
import java.io.InputStream;
import java.util.List;
import java.util.concurrent.Future;

/**
 * 部门基础信息 服务类
 *
 * @author gangan
 * @since 2019-08-07
 */
public interface IDeptService extends BaseService<Dept> {

	/**
	 * 自定义分页
	 *
	 * @param page
	 * @param dept
	 * @return
	 */
	IPage<DeptVO> selectDeptPage(IPage<DeptVO> page, DeptVO dept);




	List<Object> getTreeList();

	String checkName(Dept dept);

	String checkCode(Dept dept);

	String checkDeptEnableDisable(Dept dept);


	List<Object> getTreeInUnitList(String id);

	List<Object> getTreeInParent(long id);

	File exportExcel(JSONObject jsonObject);

	Future<ImportResult> importExcel(String progressId, InputStream inputStream);
	/**
	 *
	 * @param id 主键
	 * @return 是否存在下级 存在true,不存在false
	 */
	Boolean isHavaChild(long id);

	/**
	 * 获取参照不包含权限
	 * @param page
	 * @return
	 */
	IPage<Dept> getAll(IPage<Dept> page, QueryWrapper queryWrapper);

	/**
	 * 根据id获取
	 * @param id
	 * @return
	 */
	DeptVO getDetailVO(Object id);
}
